home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / ecu-3.35 / README < prev    next >
Text File  |  1995-07-13  |  29KB  |  669 lines

  1. .------------------------------------------------------------.
  2. | ECU README - last revised Thu Jun 15 18:09:20 EDT 1995     |
  3. +------------------------------------------------------------+
  4. | NOTE: All correspondence to the author regarding ECU must  |
  5. | be sent to ecu@n4hgf.atl.ga.us or n4hgf!ecu.  See          |
  6. | CORRESPONDENCE below for details.                          |
  7. `------------------------------------------------------------'
  8.  
  9. This is ecu revision 3.40.  ECU is a asynchronous communications
  10. program for these environments:
  11.  
  12.   SCO XENIX System V/286          ECU may be too large for '286
  13.   SCO XENIX System V/386          ECU is stable on SCO XENIX/386
  14.   SCO UNIX System V/386           ECU is very robust on SCO UNIX
  15.   SCO ODT 1.x,2.0,3.0             ODT is the same as UNIX for ECU
  16.   SCO Open Server 5
  17.  
  18.   SunOS 4.1.[123]                 a robust, stable, limited subset
  19.  
  20.   ISC 386/ix 2.2 or later         Ports to these systems are
  21.   ISC System V Release 4          not supported as regularly
  22.   ESIX System V Release 4         and I cannot vouch for
  23.                                   them at time of release
  24.                                   PLEASE GIVE ME FEEDBACK!
  25.  
  26.   New ports for 3.30 (documentation is lacking in system-dependent
  27.                       areas; please educate the author, citing doc
  28.                       chapter and verse, please)
  29.  
  30.   Linux 99pl10                    I have a Linux box now;
  31.     or later                      things are better but there
  32.                                   is still work to do; Not all
  33.                                   Linux are created equal :-)
  34.  
  35.   HP-UX 9.01                      reasonably functional; a few
  36.                                   rough edges with keyboards and
  37.                                   modem control signals
  38.  
  39.   Motorola Delta [68]8K SVR41     compiles with native cc (gcc)
  40.                                   no time for testing
  41.  
  42.   Motorola Delta [68]8K SVR32     compiles with Green Hills and gcc;
  43.                                   (now known to NOT work)
  44.                                   no machine to debug upon
  45.  
  46.   NetBSD                          Still under development;
  47.                                   ANSI emulation disabled until
  48.                                   work on termcap support is complete
  49.  
  50.   Solaris 2.x                     compiles; some testing done; needs more
  51.  
  52.   FreeBSD                         very reliable and full-featured port
  53.  
  54.            Note: Linux and NetBSD are in a state of flux; 
  55.            ECU subject to break :)  All Motorola ports untested
  56.            as of 17 Feb 1995.
  57.  
  58. -----------------------------------------------------------------------
  59.  
  60. ECU (Extended Call Utility) is a research and engineering
  61. communications program originally written for users of SCO UNIX
  62. V.3.2/386 and XENIX V on 80286 and 80386 systems.  Support for
  63. other systems has been added and further porting is possible with
  64. "minor" effort to other systems based on or similar to UNIX
  65. System V (see README.porting).  
  66.  
  67. ECU provides the classic terminal communications facility of
  68. passing keyboard data to a serial line and incoming data to the
  69. computer video display.  In addition, a dialing directory, a
  70. function key mapping feature, session logging, and other
  71. basic features are available.
  72.  
  73. ECU presents to the host a flexible "ANSI" terminal type,
  74. accepting any valid video control sequences from MS-DOS or SCO
  75. documentation as of late 1990.  It also fares well, though
  76. imperfectly, with Sun and VT-100 video control sequences.
  77. Standards are great: everybody should have one, especially if
  78. they call it "ANSI". For more information, refer to the manual
  79. section titled "ANSI Filter."  (NOTE: the porter to BSD did
  80. not engineer the ANSI terminal emulation. Therefore the incoming
  81. data is passed directly to your native screen. This may be
  82. repaired in a future release.)
  83.  
  84. Operation from a SCO multiscreen yields the best result since ECU
  85. passes most receive data directly to the SCO multiscreen driver.
  86. However, support for the physical consoles of other workstations
  87. and arbitrary video terminals is included.  Your terminal must be
  88. fairly "smart", with at least cursor addressing and clear screen
  89. features.  The accuracy of translation from the SCO
  90. multiscreen/ANSI presentation to the proper control sequences for
  91. your local terminal depends entirely upon how completely and how
  92. accurately your local console terminal's termcap entry defines
  93. attributes such as blink, character right, insert line, erase to
  94. end of line, etc..  See "Supported Terminals" in the manual.
  95. Also check the note below named "KBDTEST3".
  96.  
  97. ECU supports numerous file transfer protocols: as of this
  98. writing, XMODEM, XMODEM/CRC, XMODEM-1K, YMODEM/CRC Batch,
  99. ZMODEM/CRC-16, ZMODEM/CRC-32, C-Kermit 5 and SEAlink are
  100. supported.  For more information, refer to the manual sections
  101. describing the individual interactive and procedure file transfer
  102. commands.
  103.  
  104. A very flexible procedure (script) language is also incorporated
  105. to automate many communications tasks.  In addition to augmenting
  106. interactive tasks, by using shell scripts and ECU procedures, ECU
  107. can perform batch-style communications sessions in an entirely
  108. "unattended" fashion.
  109.  
  110. For applications too unwieldy for the procedure language,
  111. "ecufriend" programs are supported.  Friends are spawned by ECU
  112. having access to the shared memory segment containing an
  113. ECU-managed "screen image" and other data and having use of the
  114. attached communications line.
  115.  
  116. Gcc (1.40 and later) is supported for all programs in the release.
  117. See the configuration section and the note on gcc for important
  118. caveats.
  119.  
  120. The documentation suffers more in this version than in previous
  121. releases due to the large number of ports.  It is not, for
  122. instance, documented anywhere that the Linux port does not
  123. perform ANSI terminal emulation.  However, I can only document
  124. what I have access to; the manual is trustworthy for SCO users.
  125. The SunOS and two Motorola ports are covered fairly well too.
  126. Documentation, the traditional bane of the hacker, is really
  127. a fun thing for me; however, I must spend more time on things
  128. that pay the bills these days. 
  129.  
  130. The doc subdirectory has all of the .txt files used to produce
  131. ecu.man, the manual of sorts for the program.  A copy of it is
  132. reluctantly included (net.bandwidth) for those who do not have
  133. nroff.  I finally blew up my nroff with something related to
  134. document length, so there are two documents, ecu.man and
  135. proc.man.
  136.  
  137. *Please* take the time to read the (tedious) manuals and READMEs
  138. even if you are a pre-3.30 user.  This will do me honor and
  139. yourself justice because there are a lot of goodies in here,
  140. many of which are not traditional features you'll be looking for.
  141.  
  142. --------------------------------------------------------------------
  143.  
  144. KEYBOARD CONFIGURATION
  145.  
  146. If you are trying ECU on a previously unsupported machine, you
  147. have the `simple' task of defining your keyboard.  This procedure
  148. is referred to below under the headings XTERMS and KBDTEST3.  It
  149. is described in detail.
  150.  
  151. --------------------------------------------------------------------
  152.  
  153. ACKNOWLEDGMENTS
  154.  
  155. MANY THANKS to those who helped me improve the program, especially
  156. upaya!tbetz, ache@hq.demos.su (now ache@astral.msk.su), spel@hippo.ru.ac.za,
  157. bel@trout.nosc.mil, dhmadsen@icaen.uiowa.edu, dug@kd4nc.atl.ga.us,
  158. jts@ki4xo, jsm@n4vu.atl.ga.us, lamy@glsys.in-berlin.de, cma@tridom,
  159. tabbs!aris, neal@clkwrka, extel@quagga.ru.ac.za,
  160. mjb@mjbtn, tmcsys.uucp!lothar, mju@mudos.ann-arbor.mi.us
  161. elastic!fche, genrad!rob and spooley@compulink.co.uk.  There were
  162. lots of others and I know I've forgotten someone who helped a
  163. great deal; I apologize.
  164.  
  165. Very special thanks go to Dion Johnson and Bob Lewis at SCO for
  166. their untiring and generous support.
  167.  
  168. Lothar Hirschbiegel <aega84!lh> did the ISC SVR4 port -- THANKS,
  169. Lothar!
  170.  
  171. Joseph H Buehler <jhpb@sarto.budd-lake.nj.us> extended the SVR4
  172. port to ESIX -- THANKS, Joesph!
  173.  
  174. Bob Lewis <robertle@sco.com> proofread the manual (as of 3.30 --
  175. don't blame them for errors creeping in since then <smile>).
  176. This is tedious work and special thanks go to them.
  177.  
  178. Robert Lipe has contributed greatly to ECU in various esoteric areas
  179. (wild signals and tty driver dependencies pareticularly).  Also,
  180. I do not believe there ever has been an alpha revision Robert has
  181. not compiled and tested at least a bit (usually thoroughly).
  182. Robert also did early stabs at the ports to Solaris 2.x.
  183. Thanks, Robert!
  184.  
  185. Robert "Bob" Broughton ported ECU to LINUX with the help of
  186. Toomas Losin <a776@mindlink.bc.ca>.  THANKS, Bob and Toomas!
  187.  
  188. Carl Wuebker ported ECU to HP-UX.  THANKS, Carl!
  189.  
  190. Daniel Harris ported ECU to NetBSD and helped settle POSIX
  191. termios/SYSV termio issues.  THANKS, Daniel!
  192.  
  193. Andrey Chernov <ache@astral.msk.su> ported ECU to NetBSD.
  194. His port was not only flawless and seamless, but exquisite. All I
  195. had to do was patch -p0 and make.  He was patient with the
  196. minor fractures I made in pursuing my own agenda in parallel.
  197. (Parallel source development across timezones is difficult.
  198. Corollary: Linux is a miracle.)
  199.  
  200. Robert Lipe, Bob Friesenhahn and Roger Fujii all
  201. submitted input and patches for Solaris 2.x The resulting
  202. port is a melding of these efforts, mostly Mr. Lipe's.
  203.  
  204. Thanks go to Pat Davitt for checking the guy out under
  205. XENIX/386 2.3.1.
  206.  
  207. The 3.30 alpha team of
  208.  
  209.     Bob Friesenhahn       bob@simple.sat.tx.us
  210.     Carl Wuebker          clw@hprnd.rose.hp.com
  211.     Daniel Harris         daniel@reubio.apana.org.au
  212.     Gert Goering          get@greenie.muc.de
  213.     Jeff Liebermann       jeffl@comix.santa-cruz.ca.us
  214.     John Miller           jsm@n4vu.atl.ga.us
  215.     Mark J. Bailey        root@raider.raider.net
  216.     Robert Broughton      Robert_Broughton@mindlink.bc.ca
  217.     Robert Laughlin       bel@nosc.mil
  218.     Robert Lewis          robertle@sco.com
  219.     Robert Lipe           robertl@arnet.com
  220.     Roger Fujii           uunet!media!rmf
  221.     Tim Sailer            sailer@sun10.sep.bnl.gov
  222.  
  223. worked diligently over many months.  If there are fewer bugs
  224. in this major release than in previous releases, you have them
  225. to thank.  I think they indulged more bad alpha versions on
  226. this version than ever before.
  227.  
  228. This version of ECU was longer in the oven.  My schedule on
  229. an OSI protocol project kept me snowed through the last year
  230. up until now.  It makes me dizzy switching back and forth.
  231.  
  232. --------------------------------------------------------------------
  233.  
  234. MAKING AND INSTALLING
  235.  
  236. 1.   Unshar all of the shars
  237.  
  238.      I do not intentionally put anything in shell archives that is
  239.      dangerous, but it is very, very unwise to unshar as root.
  240.      Unpack shell archives as an unprivileged user.
  241.  
  242.      Make a directory and cd into it.  Use an unshar program
  243.      to extract all of the forty-odd parts of ECU and the three
  244.      or so parts of the manual.  If you do not have unshar, it
  245.      may be quicker to find one than to extract ecu without it.
  246.      However, if you must, edit each shar and remove all lines
  247.      prior to #!/bin/sh and then feed each file to /bin/sh, like
  248.  
  249.         /bin/sh < part
  250.  
  251. 2.   Type ./Configure
  252.  
  253.      This procedure builds Makefiles for ECU specific to your
  254.      system.  You must have your native compiler available for this.
  255.  
  256. 3.   Configure will compile and run config.
  257.  
  258.      Answer the questions.  If you are using a supported system,
  259.      answering the few simple questions is all that is necessary
  260.      to produce a usable configuration.  (If you are trying to
  261.      port it, make your best guess, hack the Makefiles and sources
  262.      and send them to me with your patches.)
  263.  
  264.      You will be asked the system type.  Respond according to
  265.      the following table (which may have more choices than
  266.      shown below):
  267.  
  268.         System                         |   Type
  269.      ----------------------------------+------------
  270.        SCO UNIX (any version)          |     s
  271.        SCO ODT (any version)           |
  272.        SCO XENIX (2.0.6 or later)      |
  273.      ----------------------------------+------------
  274.        HP-UX                           |     h
  275.      ----------------------------------+------------
  276.        Linux pl10 or later             |     l
  277.      ----------------------------------+------------
  278.        Motorola Delta [68]8k SVR41     |     M
  279.      ----------------------------------+------------
  280.        Motorola Delta [68]8k SVR32     |     m
  281.      ----------------------------------+------------
  282.        NetBSD                          |     N
  283.      ----------------------------------+------------
  284.        SunOS (4.1.1 or later)          |     S
  285.      ----------------------------------+------------
  286.        Solaris 2.x                     |     O
  287.      ----------------------------------+------------
  288.        ISC 386/ix (2.2 or later)       |     i
  289.      ----------------------------------+------------
  290.        ISC SVR4                        |     I
  291.      ----------------------------------+------------
  292.        ESIX SVR4                       |     E
  293.      ----------------------------------+------------
  294.        Free BSD                        |     F
  295.  
  296.      If you answer SCO, you are asked which variety: XENIX/286,
  297.      XENIX/386 or UNIX/386 prior to 3.2v4, or UNIX/386 3.2v4.
  298.      Equivalent ODT versions are shown in the variety list.
  299.  
  300.      Provided you did not opt for XENIX/286 or Linux, you will
  301.      be asked if you want to use the native cc or gcc.
  302.      Cc is chosen automatically for XENIX/286.
  303.      If you wish to use gcc, your version must be revision 1.40 or later.
  304.      Gcc is chosen automatically for Linux.
  305.  
  306.      You'll be asked two questions about ecuungetty (if it
  307.      is supported and required on your system).
  308.  
  309.      You will be asked for a default tty line, baud rate and parity.
  310.      The default for the default tty is  system dependent.  The
  311.      defaults for baud rate and parity is 9600 and none.  You may
  312.      override these with your personal preferences.
  313.  
  314.      You will be asked for the directory to install ECU and friends.
  315.      library.  The default is /usr/local/bin.  If the directory
  316.      does not exist, the install procedure will attempt to make it.
  317.  
  318.      You will be asked for the directory to use for a private ecu
  319.      library.  The default is /usr/local/lib/ecu.  If the directory
  320.      does not exist, the install procedure will attempt to make it.
  321.  
  322.      You will be asked how long the ECU built-in dialer should
  323.      wait for carrier before giving up.  The default value is 60.
  324.      If you make overseas calls, use high-speed modems or call
  325.      multi-mode modems such as Telebits, 60 seconds may not be
  326.      a long enough wait.
  327.  
  328.      You'll be asked for maximum lines and columns (80x20 minimum).
  329.  
  330.      After answering these questions, the config program will thank
  331.      you (;->) and then build Makefiles from the Make.src files in
  332.      each appropriate subdirectory.
  333.  
  334.      If you are porting to a new system, you will want
  335.      to examine and modify the Makefiles before proceeding.
  336.  
  337. 5.   The configure script suggests you "make depend".  This is
  338.      unnecessary if you are building ECU for the first time.  Also,
  339.      most patches will require you to rerun Configure.  Each time you
  340.      reconfigure the software, it is automatically completely remade
  341.      when you next run make.  Only if you anticipate making changes to
  342.      the software is "make depend" necessary to ensure the code is
  343.      properly made.
  344.  
  345. 6.   Type 'make'.  Wait and watch a while.  This is a good time to
  346.      be reading over doc/ecu.man and various READMEs.  The
  347.      CHANGES and *HISTORY* files have some note on every change
  348.      made since 3.16.  Unfortunately, they also contain
  349.      technical/historical information of no interest.
  350.  
  351.      If you are using gcc, ignore the warnings:
  352.  
  353.      previous declarator is not compatible with default argument promotion
  354.      empty body in an else-statement
  355.      integer overflow in expression  (seen only with 2.4.5)
  356.  
  357. 7.   Su to root, if not already there, and type 'make install'.
  358.  
  359. 8.   The default models/funckeymap is copied to the ECU library
  360.      as part of installing the program.  You will probably need
  361.      to study and modify this file if you plan to use a console
  362.      (user tty) other than the native console of your system
  363.      or if you are attempting to use ECU on a unsupported system.
  364.  
  365. 9.   You may have to, as root, chmod +rwx your uucp locks directory.  In
  366.      addition, if you are on a machine which does not enjoy ecuungetty
  367.      support, you may have to, as root, chmod +rw all tty lines used by ecu.
  368.      As of this writing, SCO operating systems are the only platform
  369.      which ecuungetty supports.  The 'make install' does not do the
  370.      chmods, because *you* should make the informed choice to do it.
  371.  
  372.      ON THE OTHER HAND, as of ecu 3.40 (and some late ALPHAs of 3.34),
  373.      you may wish to set ecu uid to uucp by:
  374.  
  375.             #This does **NOT** work for ecu 3.34 and before!
  376.             su root
  377.             chown uucp /usr/local/bin/ecu
  378.             chmod 4711 /usr/local/bin/ecu
  379.  
  380.      If you do this, then lines owned by uucp will be available to
  381.      ecu wherther or not the machine has ecuungetty support and
  382.      regardless of how you configured ecuungetty.
  383.  
  384. 10.  Dialer programs provide rigorous no-compromise modem control.  
  385.      The gendial subdirectory contains some rigorous, yet
  386.      experimental, SCO dialer programs for use with ecu, cu and uucico.
  387.      They are currently undocumented and "as-is."  I have used each
  388.      of them successfully at one time or another, but some have been
  389.      modified since they were last proven to work.
  390.      I use the T2500 and USR 2400 programs all the time.
  391.  
  392.      Make sure you like the modem options before using one of these
  393.      dialers.  In particular, I enable remote access to Telebits.
  394.  
  395. 11.  Make neat removes many temporary files that tend
  396.      to accumulate over time. No make targets are removed.
  397.      Make clean runs make neat and also removes all .o files.
  398.      Make clobber runs make clean and also removes executables.
  399.  
  400. 12.  models/ecu-ansi.tinfo and models/ecu-ansi.tcap are the terminfo
  401.      and termcap source, respectively, for the ecu presentation
  402.      (when it performs terminal emulation).  Both have the name 'ansi'
  403.      and 'ecu'.
  404.  
  405. 13.  Read BUGS (it's short :>).
  406.  
  407. --------------------------------------------------------------------
  408. Notes:
  409.  
  410. 1.  KERMIT:
  411.  
  412. C-Kermit 5 (as of version 5A(179)) directly supports ECU's needs.
  413. You will need a ~/.kermrc to set up the desired characteristics.
  414.  
  415. I use:
  416.  
  417. set block 3
  418. set win 3
  419. set send packet-l 2048
  420. set receive packet-l 2048
  421. set file name literal
  422. set file type bin
  423. show
  424.  
  425. But that's me.  (Buy the book!!)
  426.  
  427. 2.  SELECT(S) and CFLAGS "USE_SELECT"
  428.  
  429. ECU uses select() where possible for two purposes:
  430. 1. wait on a tty (comm line) read with timeout -and-
  431. 2. timeout (nap replacement).
  432.  
  433. If you have a working select, use -DUSE_SELECT.
  434. The Configure procedure does the job for you for systems I know about.
  435.  
  436. SCO XENIX V/386 Release 2.3.1 (and evidently 2.3.2) have a
  437. broken-dead, yet fixable, BSD-style select() feature.  Also,
  438. select() is missing from libc.a.  While ecu does not *require*
  439. select(S), it is much more efficient to use it.  The x386sel
  440. subdirectory in this release has information (thanks to
  441. csch@netcs, ivar@acc, and ag@elgar) on how to fix the kernel and
  442. to add select() to libc.a.  You'll have to add USE_SELECT to
  443. config.local if you do this.
  444.  
  445. Select(S) is fully functional in SCO UNIX 3.2.0.  I am unsure of ODT
  446. 1.0/UNIX 3.2.1.  It is broken in ODT 1.1/UNIX 3.2v2.  It does work
  447. in 3.2v4/ODT 2.0 and later.  It works very well on Motorola.
  448.  
  449. I found it in /usr/lib/libinet.a on the ISC system I used to
  450. compile for ISC.  It works fine there.  I automatically put
  451. USE_SELECT into the Makefile.
  452.  
  453. It works fine on the Sun, Linux, BSD and SVR4, naturally.
  454.  
  455. 3.  SCO MULTISCREEN BUG
  456.  
  457. There has been a bug in the multiscreen driver for some time
  458. wherein a MEDIA COPY (screen dump) sequence ("ESC [ 2 i") leaves
  459. the "ESC [ 2" part "active".  When a screen dump (Cursor 5)
  460. command is given, I do the screen dump, then send a "l" to the
  461. screen to work around the bug ("ESC 2 [ l" unlocks the keyboard,
  462. essentially a no-op).  If and when it gets fixed, you'll see an
  463. "l" show up on your screen after a screen dump sequence.  To fix
  464. this, comment out the
  465. #define MULTISCREEN_DUMP_BUG
  466. at the top of ecuscrdump.c.
  467.  
  468. The bug remains in place for every SCO product from XENIX 2.0.6
  469. through UNIX 3.2v4.  It is a minor nuisance and there are a great
  470. many other things they have fixed/improved in these years that
  471. were much more important.
  472.  
  473. Note that from multiscreens, screen dump produces a dump of the
  474. actual screen contents, including ecu-generated output.  When
  475. using a non-multiscreen terminal, screen dump dumps only the
  476. shared memory virtual screen as received from the host.
  477.  
  478. If, at a multiscreen, you wish a screen dump free of ecu output
  479. "pollution," use Shift-Tab (BkTab) to redraw the screen, then
  480. perform the screen dump.  If you are not on a multiscreen, then the
  481. screen dump comes from the (sometimes inexact) screen memory
  482. representation and this step is not necessary.
  483.  
  484. 4. GCC
  485.  
  486. In case you didn't know, GCC is a great C compiler.  It generates
  487. excellent code and gives excellent diagnostics and warnings.
  488. There are more options available than for a Coup de Ville, so you
  489. have to be careful if you get too fancy.  I should know -- I
  490. think I may have done it.  With Configure and config.c, I have
  491. tried to choose the best option set for ECU and it's utilities.
  492. If you want to play around, you can place GCC_EXTRA_CFLAGS
  493. definitions in a config.local file and experiment away.
  494.  
  495. In this release, you may expect version 1.40, 2.3.3 and 2.4.5
  496. to work for you.  I tested it on SCO with 3.2.3 and on SunOS
  497. 4.1.3 with 2.4.5.  I have also used on Motorola.  
  498.  
  499. GCC is the *only* compiler supported for Linux and for NetBSD.
  500.  
  501. 5.  XTERMS
  502.  
  503. If you are using an xterm to run ecu,
  504.  
  505. 1. the maximum geometry is 80x50
  506. 2. 4014 emulation is untested
  507. 3. you should use the following resources:
  508.  
  509. XTerm*titeInhibit:     true # enable screen clear functions normally
  510. XTerm*curses:          true # curses bug fix
  511.  
  512. If titeInhibit fails to work (some versions which use terminfo as
  513. their basis do fail), then remove the ti and te entries from
  514. /etc/termcap.
  515.  
  516. The file models/funckeymap has keyboard definitions for a number
  517. of xterm implementations.  Use kbdtest3 to determine what key
  518. sequences are generated by each function key.  If a key produces
  519. no output or ambiguous output (Home and End both produce the same
  520. sequence), use xev to determine the keysym associated with the
  521. keys in question.  Use xmodmap to map the keys to unique
  522. sequences.  For instance, on the SunOS MIT server, IPX key
  523. presses of Home and End produce:
  524.  
  525. Home:
  526. KeyPress event, serial 13, synthetic NO, window 0xd00001,
  527.     root 0x8006d, subw 0x0, time 2225786294, (124,70), root:(385,331),
  528.     state 0x0, keycode 75 (keysym 0xffd8, F27), same_screen YES,
  529.                                           ^^^
  530.                                            |
  531.                                            `--- name to use with xmodmap
  532.     XLookupString gives 0 characters:  ""
  533.  
  534. End:
  535. KeyPress event, serial 15, synthetic NO, window 0xd00001,
  536.     root 0x8006d, subw 0x0, time 2225787104, (124,70), root:(385,331),
  537.     state 0x0, keycode 119 (keysym 0xffde, R13), same_screen YES,
  538.                                            ^^^
  539.                                             |
  540.                                             `-- name to use with xmodmap
  541.     XLookupString gives 0 characters:  ""
  542.  
  543. Then, choose unique strings to map the keys to.  I generally use
  544. the SCO function key sequences (described in the very first entry
  545. in the distribution model/funckeymap).  Construct XTerm translations
  546. for the chosen sequences.  An example for Home (F27) and End (R13)
  547. is shown below.
  548.  
  549. XTerm*VT100*Translations: #override\
  550.      <Key>F27:        string(0x1b) string("[H") \n \
  551.      <Key>R13:        string(0x1b) string("[F") \n \
  552.      Shift<Key>Tab:   string(0x1b) string("[Z")
  553.  
  554. Included in the above is a mapping for "backwards Tab," Shift Tab.
  555. Most servers map Shift Tab to generate the same as unshifted Tab
  556. (or not mapped at all).
  557.  
  558. Run kbdtest3 and see if all keys now produce a unique sequence.
  559. If not, repeat the above process until you have each key producing
  560. a unique sequence.
  561.  
  562. Sometimes, you just won't be able to get a particular key to work.
  563. For instance, one X server I used refused to generate an event for
  564. Shift Keypad 5 (Shift<Key>KP_5).  In these cases, you will have to
  565. choose another key, perhaps a higher numbered function key.  Likewise,
  566. if you are using a keyboard unaffected by the True Blue Path,
  567. you may not have a key marked "Home" or "End" (I pity you :-> heh):
  568. choose a replacement you are unlikely to need otherwise.
  569.  
  570. 6. SCO UNIX MEMMOVE() AND GCC
  571.  
  572. Use of memmove has been eliminated.  See memmove/README for some
  573. history.
  574.  
  575. 7. FAS/i
  576.  
  577. For the brave, an instrumented version of FAS 2.08 (for i386
  578. SVR3) is included with this release for those who need driver
  579. instrumentation at the cost of performance and portability.  It
  580. is not supported (DO NOT CONTACT UWE DOERING ABOUT FAS/i).  I am
  581. not at all interested in starting a new tty faction.  Uwe has
  582. done a brilliant job of striking a balance between compatibility
  583. and performance.  I only name this thing FAS/i to show the
  584. derivation from FAS while marking it as different.
  585.  
  586. 8. EXCEL LOGFILE INTERFACE
  587.  
  588. The excel logfile utility posted to comp.sources.misc for ECU 3.0
  589. remains compatible with this release of ECU.
  590.  
  591. 9. KBDTEST3 and KBDTEST
  592.  
  593. Kbdtest3 is included to help you inspect your keyboard for
  594. making funckeymap entries or for preparing you to ask for help
  595. from me in getting your keyboard functional.
  596.  
  597.   cc -o kbdtest3 kbdtest.c
  598.   run it, following the instructions
  599.  
  600. Once you have installed a new funckeymap, the ECU interactive
  601. command "kbdtest" may assist in verifying it works.
  602. I would appreciate your mailing me the output file (kbdtest3.out)
  603. from each keyboard you try out.  This will assist me in making
  604. funckeymap entries for futures releases. [[ HEH HEH, I wrote this
  605. three years ago -- I've received ONE entry -- wht 4/94]]
  606.  
  607. -------------------------------------------------------------------------
  608.  
  609. RIGHTS TO USE
  610.  
  611. This program, it sources, objects and utilities are in the public
  612. domain.
  613.  
  614. Alas, placing "popular" programs in the public domain can cause
  615. peculiar problems.  As others adopt, modify and redistribute the
  616. code, it tends to fall apart.  I regularly get mail from folks
  617. who have found fragmented or damaged buckets of code with my
  618. e-mail address in it.  Invariably, it has come from some off-net
  619. BBS where someone has tried to pkzip it or something :).
  620.  
  621. Your license to redistribute this version of ECU is, of course,
  622. unlimited.  Even though I'll spend hours poring over patches
  623. trying to help a user, my patience with folks who modify my code
  624. without CLEARLY marking it so is at end.  
  625.  
  626. These are my requests:
  627.  
  628. 1.  If you use or redistribute this program, it should retain the
  629. ECU name unless you ask me.  This means the base name of the
  630. program executable must be "ecu" and the program must announce
  631. itself with the strings "ECU" and "wht@n4hgf".
  632.  
  633. 2.  If you modify the program "substantially" you should not
  634. redistribute it without asking me.  For purposes of this
  635. paragraph, "substantially" refers to changes of more than a
  636. bug-fix or cosmetic nature.  For larger changes, read
  637. README.porting and, if appropriate, submit patches to
  638. ecu@n4hgf.atl.ga.us.  If they "pass muster" (we are usually
  639. easy), then the changes will be incorportated into a released
  640. patch level of ECU.
  641.  
  642. You can give modified versions to a associate, but if s/he gives
  643. it to someone else, does the fourth party know not to contact me
  644. for bug fixes?
  645.  
  646. 3.  You are still free to use substantial code fragments or
  647. entire logical subsections of the program in any way you see fit,
  648. obeying of course any other copyrights and requests made by other
  649. authors whose code fragments appear within ECU.
  650.  
  651. 4.  Anybody who has contributed to ECU development will find it
  652. awfully easy to get my permission to do anything they want with
  653. ECU ("Noooooooooooooooooo ...  not THAT!)
  654.  
  655. -------------------------------------------------------------------------
  656.  
  657. CORRESPONDENCE
  658.  
  659. NOTE: All correspondence to the author regarding ECU must be sent
  660. to ecu@n4hgf.atl.ga.us or n4hgf!ecu.  One exception: commercial
  661. users wishing support or custom work, please contact me at the
  662. address below.  I'll try to be prompt in replies, but I'm ten
  663. months into a particularly difficult piece of single combat with
  664. ISO protocols that pays the mortgage and cat food bills.  I've
  665. got to have SOME priorities, you know :) !
  666.  
  667. Warren H. Tucker  wht@n4hgf.atl.ga.us   n4hgf!wht
  668. 150 West Lake Drive    Roswell, GA 30075-1153 USA
  669.